#ifndef EXECUTIONOBJECTINTERFACE_H
#define EXECUTIONOBJECTINTERFACE_H

#include <QDebug>
#include <QObject>
#include <QString>
#include <QNetworkReply>

class ExecutionObjectInterface : public QObject
{
    Q_OBJECT
public:
    explicit ExecutionObjectInterface(QObject *parent = 0);
    virtual ~ExecutionObjectInterface();

signals:
    void processFinished();
    void objectFinished();
    void error(QString);

public slots:
    /* This method will be run in the thread
     * and should emit processFinished when
     * done or any signals it connects to
     * should
     */
    virtual void doInBackground() = 0;

    /* This method will be run in the main
     * thread and should emit objectFinished
     * when done or any signals it connects
     * to should
     */
    virtual void onPostExecute() = 0;

};

#endif // EXECUTIONOBJECTINTERFACE_H
